#ifndef _CORE_CALCULATO_H
#define _CORE_CALCULATO_H

#include "stdbool.h"






#define ReadByteOne(_data,_location)  		 		({typeof(_data) data=(_data);typeof(_location) location=(_location);typeof(_data) shift_num=1;(void)(&data == &location);(bool)(data&(shift_num<<location));})
#define ReadByteTwo(_data,_location)  		 		({typeof(_data) data=(_data);typeof(_location) location=(_location);typeof(_data) shift_num=1;(void)(&data == &location);(typeof(_data))((data>>location)&shift_num);})
#define ReadByteThree(type,_data,_location)  		({type data=(_data);type location=(_location);type shift_num=1;(type)((data>>location)&shift_num);})		
#define WriteByte(_data,_location,_value)			({typeof(_data) data=(_data);typeof(_location) location=(_location);typeof(_value) value=(_value);(value)?(data|1<<location):(data&(~(1<<location)));})	
#define WriteByteOne(type,_data,_location,_value)	({type data=(_data);type location=(_location);type value=(_value);(value)?(data|1<<location):(data&(~(1<<location)));})	







#endif



